namespace WP7Contrib.Services.BingMaps.Model
{
    using Common;

    public class RouteInstruction : BaseModel, ICloneable<RouteInstruction>
    {
        private ManeuverType maneuverType;
        private string text;

        public ManeuverType ManeuverType
        {
            get
            {
                return this.maneuverType;
            }
            set
            {
                this.SetPropertyAndNotify(ref this.maneuverType, value, () => this.ManeuverType);
            }
        }

        public string Text
        {
            get
            {
                return this.text;
            }
            set
            {
                this.SetPropertyAndNotify(ref this.text, value, () => this.Text);
            }
        }

        public RouteInstruction ShallowClone()
        {
            return this.DeepClone();
        }

        public RouteInstruction DeepClone()
        {
            var instruction = new RouteInstruction
            {
                ManeuverType = this.maneuverType,
                Text = this.text
            };

            return instruction;
        }
    }
}